RAID 3是把数据分成多个“块”,按照一定的容错算法,存放在N+1个硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,而第N+1个硬盘上存储的数据是校验容错信息,当这N+1个硬盘中的其中一个硬盘出现故障时,从其它N个硬盘中的数据也可以恢复原始数据,这样,仅使用这N个硬盘也可以带伤继续工作(如采集和回放素材),当更换一个新硬盘后,系统可以重新恢复完整的校验容错信息。由于在一个硬盘阵列中,多于一个硬盘同时出现故障率的几率很小,所以一般情况下,使用RAID3,安全性是可以得到保障的。
RAID3的数据存取方式和
RAID2一样,把数据以位为单位来分割并且存储到各个硬盘上,并且在数据安全方面以
奇偶校验取代海明码做错误校正及检测,所以只需要一个额外的校验盘。奇偶校验值的计算是以各个硬盘的相对应位进行异或的逻辑运算,然后将结果写入奇偶校验硬盘。
RAID 3是在RAID 2基础上发展而来的,主要的变化是用相对简单的异或逻辑运算(XOR,eXclusive OR)校验代替了相对复杂的
汉明码校验,从而也大幅降低了成本。XOR的校验原理如下表:
这里的A与B值就代表了两个位,从中可以发现,A与B一样时,XOR结果为0,A与B不一样时,XOR结果就是1,而且知道XOR结果和A与B中的任何一个数值,就可以反推出另一个数值。比如A为1,XOR结果为1,那么B肯定为0,如果XOR结果为0,那么B肯定为1。这就是XOR编码与校验的基本原理。
RAID3具有容错能力,但是系统会受到影响。当一块硬盘失效时,该硬盘上的所以数据块必须使用校验信息重新建立。如果是从好盘中读取数据块,不会有任何变化;但是如果要读取的数据块正好位于已经损坏的硬盘上,则必须同时读取同一带区中的所有其它数据块,并根据校验值重建丢失的数据。
在使用RAID3的过程中还有其它一些性能上的问题需要引起注意。RAID3存在的最大的一个不足,同时也是导致RAID3很少被人们采用的原因就是校验盘很容易成为整个系统的瓶颈。我们已经知道,RAID3会把数据写入操作分散到多个硬盘上进行,然而不管是向哪一个数据盘写入数据,都需要同时重写校验盘中的相关信息。因此,对于那些经常需要执行大量写入操作的应用来说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致整个RAID系统性能的下降。鉴于这种原因,RAID3更加适合应用于那些写入操作较少,读取操作较多的应用环境,如数据库和web服务器等。与RAID0相比,RAID3在读写速度方面相对较慢。使用的容错算法和分块大小决定RAID使用的应用场合,在通常情况下,RAID3比较适合大文件类型且安全性要求较高的应用,如视频编辑、硬盘播出机、大型数据库等。